//
//  ptranal.h
//  ltlbmc
//
//  Created by GD Huang on 8/27/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#ifndef ltlbmc_ptranal_h
#define ltlbmc_ptranal_h


#include "varinfo.h"
#include "fundec.h"
#include "file.h"
#include "exp.h"

namespace cilast {
class ptranal {

public:
    
    static ptranal instance();
    
    
    void analysis_file(file*);
    bool may_alias(exp*, exp*);
    std::vector<varinfo*> resolve_lval(lval*);
    std::vector<varinfo*> resolve_exp(exp*);
    std::vector<fundec*> resolve_funptr(exp*);
    
};
}

#endif
